/*
 *
 * http://www.quirksmode.org/js/detect.html
 *
 */

/*
 *	${mavenStamp}
 */

var browserDetect = {

	init : function() {
		this.browser = this.searchString(this.dataBrowser)
				|| 'an unknown browser';
		this.version = this.searchVersion(navigator.userAgent)
				|| this.searchVersion(navigator.appVersion)
				|| 'an unknown version';
		this.OS = this.searchString(this.dataOS) || 'an unknown OS';
	},

	searchString : function(data) {
		for (var i = 0; i < data.length; i++) {
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch
					|| data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			} else if (dataProp)
				return data[i].identity;
		}
	},

	searchVersion : function(dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1)
			return;
		return parseFloat(dataString.substring(index
				+ this.versionSearchString.length + 1));
	},

	dataBrowser : [{
				string : navigator.userAgent,
				subString : 'Chrome',
				identity : 'Chrome'
			}, {
				string : navigator.userAgent,
				subString : 'OmniWeb',
				versionSearch : 'OmniWeb/',
				identity : 'OmniWeb'
			}, {
				string : navigator.vendor,
				subString : 'Apple',
				identity : 'Safari',
				versionSearch : 'Version'
			}, {
				prop : window.opera,
				identity : 'Opera'
			}, {
				string : navigator.vendor,
				subString : 'iCab',
				identity : 'iCab'
			}, {
				string : navigator.vendor,
				subString : 'KDE',
				identity : 'Konqueror'
			}, {
				string : navigator.userAgent,
				subString : 'Firefox',
				identity : 'Firefox'
			}, {
				string : navigator.vendor,
				subString : 'Camino',
				identity : 'Camino'
			}, { // for newer Netscapes (6+)
				string : navigator.userAgent,
				subString : 'Netscape',
				identity : 'Netscape'
			}, {
				string : navigator.userAgent,
				subString : 'MSIE',
				identity : 'Explorer',
				versionSearch : 'MSIE'
			}, {
				string : navigator.userAgent,
				subString : 'Gecko',
				identity : 'Mozilla',
				versionSearch : 'rv'
			}, { // for older Netscapes (4-)
				string : navigator.userAgent,
				subString : 'Mozilla',
				identity : 'Netscape',
				versionSearch : 'Mozilla'
			}],

	dataOS : [{
				string : navigator.platform,
				subString : 'Win',
				identity : 'Windows'
			}, {
				string : navigator.platform,
				subString : 'Mac',
				identity : 'Mac'
			}, {
				string : navigator.userAgent,
				subString : 'iPhone',
				identity : 'iPhone/iPod'
			}, {
				string : navigator.platform,
				subString : 'Linux',
				identity : 'Linux'
			}]

};

browserDetect.init();

